package com.snail.model.pojo;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 战队信息表
 *
 * @TableName sys_team
 */
@TableName(value = "sys_team")
@Data
public class SysTeam {
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 队伍名称
     */
    private String teamName;

    /**
     * 创建者ID(用户id)
     */
    private Long creatorId;

    /**
     * 是否审核（0：无需审核，1：需要审核）
     */
    private Integer needReview;

    /**
     * 战队描述
     */
    private String description;

    /**
     * 战队logo路径
     */
    private String logo;

    /**
     * 标签（标签id），多个标签用逗号分隔
     */
    private String tag;

    /**
     * 最大人数
     */
    private Integer maxCount;

    /**
     * 是否需要订阅（0：否，1：是）
     */
    private Integer isSubscribe;

    /**
     * 订阅金额
     */
    private BigDecimal subscribePrice;

    /**
     * 订阅周期（0：无，1：周，2：月，3：季，4：年）
     */
    private Integer subscribeCycle;

    /**
     * 订阅折扣（0.5表示五折）
     */
    private BigDecimal subscribeDiscount;

    /**
     * 免费试用天数
     */
    private Integer trialDays;

    /**
     * 是否自动续费
     */
    private Integer autoRenew;

    /**
     * 创建人
     */
    @TableField(fill = FieldFill.INSERT)
    private Long createBy;

    /**
     * 更新人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateBy;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE) // 插入和更新时都自动填充
    private LocalDateTime updateTime;

    /**
     * 是否删除（0：未删除，1：已删除）
     */
    private Integer deleted;

    /**
     * 创建人名称
     *
     */
    @TableField(exist = false)
    private String username;
}